#include<iostream>
#include<string>
#include<future>


int Add(int num1 ,int num2)
{
    return num1 + num2;
}


int main()
{
    // 关联异步任务aysnc_task 和 futrue 
    //两种策略: 
    //1.std::launch::async策略 :异步策略,内部创建一个线程执行函数, 函数运行结果通过future获取
    //2.std::launch::deferred策略:同步策略 ,获取结果时再执行任务
    std::future<int> res = std::async(std::launch::async , Add ,25 ,36);

    // 获取异步任务结果 ,如果还没有结果(有的I/O慢)就会阻塞在这
    int result =res.get();

    std::cout<<result<<std::endl;
    return 0;
}